package com.mmall.concurerency.singleton;

        import com.mmall.concurerency.annoations.NoThreadSafe;

/**
 * 单例懒汉模式
 * 是在第一次使用的时候进行创建
 */
@NoThreadSafe
public class SingletonExample1 {
    //私有构造函数
    public SingletonExample1() {

    }
    //单例对象
    private static SingletonExample2 singletonExample1 =null;
    //静态的工厂方法
    public static SingletonExample2 getInstance(){
        //单线程是没有问题的，但是是多线程是有问题，当2个线程同时访问的时候，都为空。
        if(singletonExample1 == null){
            singletonExample1 = new SingletonExample2();
        }
        return singletonExample1;
    }
}
